home *** CD-ROM | disk | FTP | other *** search
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- This is the french version. The english version will be available on our
- web site as soon as possible.
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CONSIDERATIONS TECHNIQUES - Rev. D
- Etude sur FALCON
- FALCON + CENTurbo II Rev B
-
- Rodolphe Czuba / CENTEK - JANVIER 99.
-
- Toute utilisation de ce fichier à des fins commerciales est interdites.
- Toute utilisation de ce fichier à des fins pédagogique est autorisée !
- Toute publication est interdite sans l'autorisation écrite de l'Auteur.
-
- Ce fichier est destiné à présenter quelques aspects techniques concernant
- les performances d'un processeur en fonction du bus et de la ram.
-
- ******
- FALCON
- ******
-
- Le système de base est un FALCON 030 équipé d'un MOTOROLA MC68030 16 MHz
- avec un bus 16-Bit.
-
- Sur ce système, la ram est organisée en 2 bancs mémoires 16-Bit de 2 Mo
- chacun. Ce qui nous fait un total de 4 Mo qui est adressé en 32-Bit
- uniquement par le circuit vidéo (VIDEL).
- L'intérêt des 2 bancs mémoires est l'entrelacement ou 'interleaving'.
- En effet, du point de vu MAPPING mémoire, l'accès à un WORD à une adresse
- word paire ($00, $04, $08, etc) se fait dans un banc mémoire 0 et l'accès
- à un WORD impaire ($02, $06, $0A, etc...) se fait dans l'autre banc
- mémoire (1).
- Ainsi lors d'accès séquentiels linéaires (dans beaucoup de cas), le
- processseur accède aux bancs 0, 1, 0, 1, 0, etc...
- Mais pourquoi ?
- Pour éviter de perdre des cycles en PRECHARGE TIME. Ce precharge time
- est le temps nécessaire et obligatoire entre 2 accès à une DRAM !
- Pour de la 60 ns, ce temps est de 40 ns; un cycle 16 MHz suffit donc.
- Le temps du cyle complet de cette ram est de 110 ns !!
- La ram du F030 est de la 80 ns (cycle complet de 150 ns).
-
- A la grande question, pourquoi le FALCON a un bus DATA 16-Bit, voici
- l'hypothèse la plus probable:
- Pour permettre un bus DATA 32-Bit pour le CPU et garder en même temps
- les performances avec l'entrelacement, il aurait fallu qu'Atari propose
- des configurations RAM de 2 ou 8 Mo. 2 est trop peu et 8, à l'époque,
- coûtait très cher...
-
- Le 030 du FALCON accède en 4 cycles (16 MHz) à un banc. Un cycle dure
- 62.5 ns. Ceci nous fait 4 x 62.5 = 250 ns. Ca passe largement, même si
- la ram d'origine est de la 80 ns !
- Le calcul de la bande passante de la ram (le nombre d'octets par seconde
- que l'on peut lire/envoyer de/dans la RAM) est le suivant:
- 1 WORD / 4 cycles d'horloge, soit 0.5 octets / cycles horloge.
-
- Donc 0.5 x 16 000 000 = 8 Mo/s.
-
- Ce que vous pouvez envoyer dans la RAM est une chose mais ce que le
- processeur peut faire en est une autre.
- En effet, pour transférer entre de la RAM et un CPU, ce dernier doit
- exécuter des instructions. La plus utilisée est un bon vieux MOVE.L
- qui nécessite 5 cycles d'horloge sur 030 (2 sur 040) et ceci est bien
- évidamment la plus rapide pour lire. Du coup, ces 8 Mo/s ne sont que
- théoriques et la réalité en est un peu différente :
- Sur un bus 16-Bit, le MOVE.L obligera le processeur à faire deux
- sorties sur le bus pour lire/écrire 2 WORDS. Heureusement, ce type de
- 'découpage' n'entraine pas de délais entre les deux WORDS.
-
- De plus, il faut tenir compte du temps pris par les accès RAM pour
- alimenter le VIDEL. Ce temps peut prendre de 4 à 32 % de la bande
- passante du bus et donc réduire d'autant les performances d'accès du CPU.
- Ce problème n'existe pas avec de la FAST-Ram puisque cette dernière
- n'est pas utilisée par la vidéo...
- Prenons le cas du mode 640x480x2 couleurs (1 bit/pixel):
- Le nombre d'octets à transférer de la RAM à VIDEL (c'est COMBEL qui se
- charge de les adresser) est de (640x480)/8 = 38400,
- soit 38400/4 = 9600 LONG (accès 32-Bit en RAM).
- Le VIDEL reçoit ces LONG par BURST de 17 LONG.
- Et le BURST se fait en 3, 1, 1, .....1, 1, 1 grâce au mode d'accès
- FAST-PAGE de la ram 80 ns.
- Soit 9600/17 = 565 BURST (de 17 LONG),
- ce qui donne 565 x 19 = 10735 cycles pour une image.
- Pour une seconde (60 images puisque 60 Hz en VGA), il faut compter
- 10735 x 60 = 644 100 cycles.
- C'est en fait le temps pendant lequel le CPU ne peut pas profiter
- de la ST-Ram.
- Ce qui représente 644 100 / 16 000 000 = 0.040, soit 4% !
- En mode 16 couleurs, cela grimpe à 16% (4 bits/pixel), et en mode TC
- on atteint les 32% (16-Bit/pixel mais seulement 320 pixel/ligne);
- ce qui fait ralentir la machine !
- Avec une CENTurbo II B, le bus du F030 passe à 50 MHz et on réduit
- ainsi à 20% pour le TC, 10.2% en 16 couleurs et 2.56% pour le mode
- 2 couleurs. On vous laisse calculer le mode 256 couleurs et
- découvrir une surprise...
-
- Ainsi pour préciser les calculs, il faut compter:
- 16 000 000 - 644 100 = 15 355 900 cycles disponibles pour le
- CPU en mode monochrome 640x480.
-
- Résumons:
- Le nombre d'octets chargables depuis la ST-Ram est:
- (4 octets / 5 + 2 x 4) x 15 355 900 (5 cycles pour le MOVE.L)
- soit 4,72 Mo/s.
-
- Pour affiner encore les calculs, quelques remarques:
-
- 1 - Le mode BURST des CACHES du 030 n'est pas utilisable sur un bus 16 bits !
-
- 2 - Ce débit ne tient pas compte des cycles de rafraichissement qui arrivent
- toutes les 15.6 uS et obligent le 030 à attendre (WAIT STATES !). Mais ces
- cycles sont les mêmes dans tous les sytèmes, alors nous les passeront sous
- silence. De toute façon, ils modifient de façon infime les performances des
- systèmes.
-
- 3 - Ce calcul part du fait qu'on accède linéairement à la ram en continue,
- donc en profitant de l'entrelacement des bancs mémoires !
- Si on accède n'importe comment à la ram (déalignement du code !) ou si on
- accède au même banc mémoire (accès d'un word tous les 4 octets en ram)
- ($00, $04, $08 par exemple), on doit refaire la calcul:
- 1 LONG / (11 cycles + 2 cycles (temps de précharge à 16 MHz pour
- chaque WORD).
- On a donc 1 LONG / 13 cycles = 0.307 octets / s
- 0.307 x 16000000 = 4,9 Mo/s.
- AVIS A CEUX QUI PROGRAMMENT MAL !
-
- 4 - Il est intéressant de faire une distinction entre la lecture et
- l'écriture
- dans une DRAM, car si le hard est bien fait, il est possible d'écrire
- plus vite que de lire...
- C'est ce que vous pouvez constater dans les NEMBENCHS (5.3 / 6.4 sur
- F030 d'origine et 32.5 / 38.9 sur CT2B).
-
- 5 - La bande passante du bus est aussi conssommée par des circuits
- capables de devenir MASTER à la place du CPU. Sur Falcon, il y en a
- deux: le SDMA et le BLITTER.
-
-
- *************
- CENTurbo II B
- *************
-
- Le plus grand point technique de la CENTurbo II est la FAST-Ram 32-Bit.
- En effet, cette ram autorise ENFIN le BURST (ou rafale) lors du
- chargement des caches du 030 !!
- Petit rappel: le BURST est un mode de chargement RAFALE d'une ligne
- d'un cache.
- Une ligne fait 16 octets (4 longs), soit l'équivalent de 4 accès au bus,
- mais en bien plus rapide.
-
- Le contrôleur de FAST-Ram est bien plus performant que celui de la
- ST-Ram du Falcon.
- - Il permet des accès séquentiels en 5 cycles d'horloge 50 MHz
- en lecture et 4 cycles en écriture !
- - les cycles de rafraichissement durent 5 cycles d'horloge !
- - Il autorise le BURST !!! Avec un prgramme en FAST-Ram, le CPU
- passe les 90% de son temps à 'BURSTER' pour son cache.
-
- Ainsi, en 5 cycles 50 MHz, le 030 avale un LONG (4 octets) depuis
- la FAST-Ram en cas de NON BURST (rare),
- soit 4/(5+5) 5 cycles pour lire le bus et 5 pour exécuter le MOVE.L
- = 0.4 octet/cycle.
- soit, à 50 MHz, 0.4 x 50 000 000 = 20 Mo/s !
- Ça commence à chauffer !!
-
- Passons au BURST:
-
- Le BURST intervient dans pratiquement 100 % des cas si le code est aligné !!
- La lecture BURST de la CENTurbo 2 B est faite en 5, 2, 2, 2 à 50 MHz.
-
- RAPPEL: Cette syntaxe technique signifie que le premier LONG est lu en
- 5 cycles, et que les 3 suivants sont lus chacun en 2 cycles.
- Soit un total de 16 octets en 11 cycles !
-
- Le calcul est donc le suivant:
- 16 octets / (11 + 5 x 3) cycles 50 MHz,
- soit 16 octets / 26 cycles 50 MHz
- = 0.61538 octets/s
- soit 0.61538 x 50 000 000 = 30.77 Mo/s !
-
- Ceci fait un facteur de 30.77 / 5.3 = 5.8 fois plus rapide que le veau de
- Falcon de base (mmeuuuhhhh !!). Il y a encore des gens qui travaillent avec
- un Falcon sans CENTurbo ??!
-
- REMARQUE : Le BLITTER n'est pas utilisable sur CT2 du fait de son
- incapacité à adresser un espace 32-Bit d'adresse, dont la FAST-Ram (NVDI4
- est obligatoire !).
-
- Cette petite 'étude' s'achève.
- Merci de votre attention et nous espérons que vous avez compris
- comment calculer des bandes passantes.
-
- CENTEK HOTLINE :
- MARDI au SAMEDI de 21 à 23 Heures !
- 0344 746 330
-
- CENTEK
-